//package class_0909treap;
//
//public class TreapTest {
//    public static void main(String[] args) throws EmptyTreapException {
//        Treap<Integer, String> treap = new Treap<>();
//
//        // 测试1: 插入操作
//        System.out.println("测试1：插入操作");
//        treap.insert(20, "A");
//        treap.insert(15, "B");
//        treap.insert(30, "C");
//        treap.insert(25, "D");
//        treap.insert(35, "E");
//
//        System.out.println("搜索 25: " + treap.search(25)); // 应该返回 "D"
//        System.out.println("搜索 10: " + treap.search(10)); // 应该返回 null
//
//        // 测试2: 重复插入同一个 key，更新值
//        System.out.println("\n测试2：更新值");
//        treap.insert(25, "NewD");
//        System.out.println("搜索 25（更新后）: " + treap.search(25)); // 应该返回 "NewD"
//
//        // 测试3: 删除操作 - 删除叶子节点
//        System.out.println("\n测试3：删除叶子节点 35");
//        treap.delete(35);
//        System.out.println("搜索 35: " + treap.search(35)); // 应该返回 null
//
//        // 测试4: 删除操作 - 删除有一个子节点的节点
//        System.out.println("\n测试4：删除有一个子节点的节点 30");
//        treap.delete(30);
//        System.out.println("搜索 30: " + treap.search(30)); // 应该返回 null
//
//        // 测试5: 删除操作 - 删除有两个子节点的节点
//        System.out.println("\n测试5：删除有两个子节点的节点 20");
//        treap.delete(20);
//        System.out.println("搜索 20: " + treap.search(20)); // 应该返回 null
//
//        // 测试6: 删除根节点
//        System.out.println("\n测试6：删除根节点 15");
//        treap.delete(15);
//        System.out.println("搜索 15: " + treap.search(15)); // 应该返回 null
//
//        // 测试7: 异常测试 - 删除不存在的节点
//        System.out.println("\n测试7：删除不存在的节点 100");
//        try {
//            treap.delete(100);  // 触发 EmptyTreapException
//        } catch (EmptyTreapException e) {
//            System.out.println(e.getMessage()); // 应该提示 "key not found"
//        }
//    }
//}
